package huffmann;

public class Principal {
	public static void main(String[] args) {
		Arquivo arq = new Arquivo();
		Objeto v[] = new Objeto[256], lista, raiz;
		CalculaProbabilidade cp = new CalculaProbabilidade();
		Imprimir imp = new Imprimir();
		MontaArvore mntArvore = new MontaArvore();
		MontaLista mntLista = new MontaLista();
		OrdenaLista ordLista = new OrdenaLista();
		RemontaVetor mntVetor = new RemontaVetor();
		Codificador coder = new Codificador();
		Decodificador decoder = new Decodificador();
		CalculaEntropia ce = new CalculaEntropia();

		arq.openFile();
		arq.read(v);
		arq.closeFile();

		cp.calcula(v);

		lista = mntLista.execute(v);
		mntVetor.execute(lista, v);
		lista = ordLista.execute(lista);

		raiz = mntArvore.execute(lista);
		Caminhamento caminha = new Caminhamento();
		caminha.execute(raiz);
		
		arq.reopenFile();
		coder.execute(arq, v, raiz);
		arq.closeFile();
		
		ce.execute(v);
		
//		decoder.execute(v, raiz);
	}
}
